package geral.manager;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.enterprise.context.ConversationScoped;
import javax.faces.model.SelectItem;
import javax.inject.Inject;
import javax.inject.Named;

import medico.manager.MedicoManager;
import medico.manager.PacientePessoaManager;
import produto.manager.FornecedorManager;
import produto.manager.ProdutoManager;
import produto.manager.TipoProdutoManager;
import seguranca.manager.PerfilManager;
import seguranca.manager.SegurancaManager;
import sgc.manager.AgendaManager;
import veterinaria.manager.AnimalManager;
import veterinaria.manager.ClienteManager;
import veterinaria.manager.EspecieManager;
import veterinaria.manager.ItensHospedagemManager;
import veterinaria.manager.PelagemManager;
import veterinaria.manager.RacaManager;
import veterinaria.manager.UnidadeHospedagemManager;
import br.com.sgc.enuns.EstadoConservacao;
import br.com.sgc.enuns.EstadoSaude;
import br.com.sgc.enuns.StatusAgendamento;
import br.com.sgc.enuns.TipoClinica;
import br.com.sgc.enuns.TipoConsulta;
import br.com.sgc.enuns.TipoDesconto;
import br.com.sgc.enuns.TipoTelefone;
import financeiro.manager.ContasPagarManager;
import financeiro.manager.ContasReceberManager;
import financeiro.manager.FormaPagamentoManager;
import financeiro.manager.PedidoCompraManager;
import financeiro.manager.PedidoVendaManager;

@Named
@ConversationScoped
public class UtilManager implements Serializable{

	private static final long serialVersionUID = -9221742797561872716L;

	@Inject private SegurancaManager segurancaManager;
	
	@Inject private PerfilManager perfilManager;

	@Inject private CargoManager cargoManager;
	
	@Inject private FuncaoManager funcaoManager;
	
	@Inject private FuncionarioManager funcionarioManager;
	
	@Inject private PacientePessoaManager pacientePessoaManager;
	
	@Inject private PessoaManager pessoaManager;
	
	@Inject private EnderecoManager enderecoManager;
	
	@Inject private TelefoneManager telefoneManager;
	
	@Inject private HorarioManager horarioManager;
	
	@Inject private ClinicaManager clinicaManager;
	
	@Inject private MedicoManager medicoManager;
	
	@Inject private RelatorioManager relatorioManager;
	
	@Inject private PelagemManager pelagemManager;
	
	@Inject private RacaManager racaManager;
	
	@Inject private ClienteManager clienteManager;
	
	@Inject private EspecieManager especieManager;
	
	@Inject private GeralManager geralManager;
	
	@Inject private AnimalManager animalManager;
	
	@Inject private ImagemManager imagemManager;
	
	@Inject private TipoProcedimentoManager tipoProcedimentoManager;
	
	@Inject private ItensHospedagemManager itensHospedagemManager;
	
	@Inject private UnidadeHospedagemManager unidadeHospedagemManager;
	
	@Inject private AgendaManager agendaManager;
	
	@Inject private TipoProdutoManager tipoProdutoManager;
	
	@Inject private ProdutoManager produtoManager;
	
	@Inject private FormaPagamentoManager formaPagamentoManager;
	
	@Inject private ContasReceberManager contasReceberManager;
	
	@Inject private PedidoVendaManager pedidoVendaManager;
	
	@Inject private FornecedorManager fornecedorManager;
	
	@Inject private ContasPagarManager contasPagarManager;
	
	@Inject private PedidoCompraManager pedidoCompraManager;
	
	public List<SelectItem> getListTipoTelefone(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		si.add(new SelectItem(null, "- Selecione -"));
		for(TipoTelefone tipo: TipoTelefone.values()){
			si.add(new SelectItem(tipo, tipo.getDescricao()));
		}
		return si;
	}
	
	public List<StatusAgendamento> getListStatusAgendamento(){
		List<StatusAgendamento> list = new ArrayList<StatusAgendamento>();
		for(StatusAgendamento status: StatusAgendamento.values()){
			list.add(status);
		}
		return list;
	}
	
	public List<SelectItem> getListTipoDesconto(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		for(TipoDesconto tipo: TipoDesconto.values()){
			si.add(new SelectItem(tipo, tipo.getDescricao()));
		}
		return si;
	}
	
	public List<SelectItem> getListDiasSemana(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		si.add(new SelectItem(Calendar.SUNDAY, "Domingo"));
		si.add(new SelectItem(Calendar.MONDAY, "Segunda-Feira"));
		si.add(new SelectItem(Calendar.TUESDAY, "Terça-Feira"));
		si.add(new SelectItem(Calendar.WEDNESDAY, "Quarta-Feira"));
		si.add(new SelectItem(Calendar.THURSDAY, "Quinta-Feira"));
		si.add(new SelectItem(Calendar.FRIDAY, "Sexta-Feira"));
		si.add(new SelectItem(Calendar.SATURDAY, "Sábado"));
		return si;
	}
	
	public List<SelectItem> getListTipoClinica(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		for(TipoClinica tipo: TipoClinica.values()){
			si.add(new SelectItem(tipo, tipo.getDescricao()));
		}
		return si;
	}
	
	public List<SelectItem> getListTipoConsulta(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		si.add(new SelectItem(null, "- Selecione -"));
		for(TipoConsulta tipo: TipoConsulta.values()){
			si.add(new SelectItem(tipo, tipo.getDescricao()));
		}
		return si;
	}
	
	public List<SelectItem> getListEstadoSaude(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		si.add(new SelectItem(null, "- Selecione -"));
		for(EstadoSaude estado: EstadoSaude.values()){
			si.add(new SelectItem(estado, estado.getDescricao()));
		}
		return si;
	}
	
	public List<SelectItem> getListEstadoConservacao(){
		List<SelectItem> si = new ArrayList<SelectItem>();
		si.add(new SelectItem(null, "- Selecione -"));
		for(EstadoConservacao estado: EstadoConservacao.values()){
			si.add(new SelectItem(estado, estado.getDescricao()));
		}
		return si;
	}
	
	
	public PessoaManager getPessoaManager() {
		return pessoaManager;
	}

	public void setPessoaManager(PessoaManager pessoaManager) {
		this.pessoaManager = pessoaManager;
	}

	public EnderecoManager getEnderecoManager() {
		return enderecoManager;
	}

	public void setEnderecoManager(EnderecoManager enderecoManager) {
		this.enderecoManager = enderecoManager;
	}

	public TelefoneManager getTelefoneManager() {
		return telefoneManager;
	}

	public void setTelefoneManager(TelefoneManager telefoneManager) {
		this.telefoneManager = telefoneManager;
	}

	public CargoManager getCargoManager() {
		return cargoManager;
	}

	public void setCargoManager(CargoManager cargoManager) {
		this.cargoManager = cargoManager;
	}

	public FuncaoManager getFuncaoManager() {
		return funcaoManager;
	}

	public void setFuncaoManager(FuncaoManager funcaoManager) {
		this.funcaoManager = funcaoManager;
	}

	public FuncionarioManager getFuncionarioManager() {
		return funcionarioManager;
	}

	public void setFuncionarioManager(FuncionarioManager funcionarioManager) {
		this.funcionarioManager = funcionarioManager;
	}

	public PerfilManager getPerfilManager() {
		return perfilManager;
	}

	public void setPerfilManager(PerfilManager perfilManager) {
		this.perfilManager = perfilManager;
	}

	public SegurancaManager getSegurancaManager() {
		return segurancaManager;
	}

	public void setSegurancaManager(SegurancaManager segurancaManager) {
		this.segurancaManager = segurancaManager;
	}

	public HorarioManager getHorarioManager() {
		return horarioManager;
	}

	public void setHorarioManager(HorarioManager horarioManager) {
		this.horarioManager = horarioManager;
	}

	public ClinicaManager getClinicaManager() {
		return clinicaManager;
	}

	public void setClinicaManager(ClinicaManager clinicaManager) {
		this.clinicaManager = clinicaManager;
	}


	public MedicoManager getMedicoManager() {
		return medicoManager;
	}


	public void setMedicoManager(MedicoManager medicoManager) {
		this.medicoManager = medicoManager;
	}

	public PacientePessoaManager getPacientePessoaManager() {
		return pacientePessoaManager;
	}

	public void setPacienteManager(PacientePessoaManager pacientePessoaManager) {
		this.pacientePessoaManager = pacientePessoaManager;
	}

	public RelatorioManager getRelatorioManager() {
		return relatorioManager;
	}

	public void setRelatorioManager(RelatorioManager relatorioManager) {
		this.relatorioManager = relatorioManager;
	}

	public PelagemManager getPelagemManager() {
		return pelagemManager;
	}

	public void setPelagemManager(PelagemManager pelagemManager) {
		this.pelagemManager = pelagemManager;
	}

	public RacaManager getRacaManager() {
		return racaManager;
	}

	public void setRacaManager(RacaManager racaManager) {
		this.racaManager = racaManager;
	}

	public ClienteManager getClienteManager() {
		return clienteManager;
	}

	public void setClienteManager(ClienteManager clienteManager) {
		this.clienteManager = clienteManager;
	}

	public EspecieManager getEspecieManager() {
		return especieManager;
	}

	public void setEspecieManager(EspecieManager especieManager) {
		this.especieManager = especieManager;
	}

	public GeralManager getGeralManager() {
		return geralManager;
	}

	public void setGeralManager(GeralManager geralManager) {
		this.geralManager = geralManager;
	}

	public AnimalManager getAnimalManager() {
		return animalManager;
	}

	public void setAnimalManager(AnimalManager animalManager) {
		this.animalManager = animalManager;
	}

	public ImagemManager getImagemManager() {
		return imagemManager;
	}

	public void setImagemManager(ImagemManager imagemManager) {
		this.imagemManager = imagemManager;
	}

	public void setPacientePessoaManager(PacientePessoaManager pacientePessoaManager) {
		this.pacientePessoaManager = pacientePessoaManager;
	}

	public TipoProcedimentoManager getTipoProcedimentoManager() {
		return tipoProcedimentoManager;
	}

	public void setTipoProcedimentoManager(
			TipoProcedimentoManager tipoProcedimentoManager) {
		this.tipoProcedimentoManager = tipoProcedimentoManager;
	}

	public ItensHospedagemManager getItensHospedagemManager() {
		return itensHospedagemManager;
	}

	public void setItensHospedagemManager(
			ItensHospedagemManager itensHospedagemManager) {
		this.itensHospedagemManager = itensHospedagemManager;
	}

	public UnidadeHospedagemManager getUnidadeHospedagemManager() {
		return unidadeHospedagemManager;
	}

	public void setUnidadeHospedagemManager(
			UnidadeHospedagemManager unidadeHospedagemManager) {
		this.unidadeHospedagemManager = unidadeHospedagemManager;
	}

	public AgendaManager getAgendaManager() {
		return agendaManager;
	}

	public void setAgendaManager(AgendaManager agendaManager) {
		this.agendaManager = agendaManager;
	}

	public TipoProdutoManager getTipoProdutoManager() {
		return tipoProdutoManager;
	}

	public void setTipoProdutoManager(TipoProdutoManager tipoProdutoManager) {
		this.tipoProdutoManager = tipoProdutoManager;
	}

	public ProdutoManager getProdutoManager() {
		return produtoManager;
	}

	public void setProdutoManager(ProdutoManager produtoManager) {
		this.produtoManager = produtoManager;
	}

	public FormaPagamentoManager getFormaPagamentoManager() {
		return formaPagamentoManager;
	}

	public void setFormaPagamentoManager(FormaPagamentoManager formaPagamentoManager) {
		this.formaPagamentoManager = formaPagamentoManager;
	}

	public ContasReceberManager getContasReceberManager() {
		return contasReceberManager;
	}

	public void setContasReceberManager(ContasReceberManager contasReceberManager) {
		this.contasReceberManager = contasReceberManager;
	}

	public PedidoVendaManager getPedidoVendaManager() {
		return pedidoVendaManager;
	}

	public void setPedidoVendaManager(PedidoVendaManager pedidoVendaManager) {
		this.pedidoVendaManager = pedidoVendaManager;
	}

	public FornecedorManager getFornecedorManager() {
		return fornecedorManager;
	}

	public void setFornecedorManager(FornecedorManager fornecedorManager) {
		this.fornecedorManager = fornecedorManager;
	}

	public ContasPagarManager getContasPagarManager() {
		return contasPagarManager;
	}

	public void setContasPagarManager(ContasPagarManager contasPagarManager) {
		this.contasPagarManager = contasPagarManager;
	}

	public PedidoCompraManager getPedidoCompraManager() {
		return pedidoCompraManager;
	}

	public void setPedidoCompraManager(PedidoCompraManager pedidoCompraManager) {
		this.pedidoCompraManager = pedidoCompraManager;
	}
	
}